Head tracking has many uses in computer assisted programs. For instance, head tracking is useful for integration of a user into a virtual environment. This is particularly the case when a user is participating within a three dimensional (3D) gaming environment. Tracking of the user's head provides visual cues as to what viewpoint is projected in the 3D environment. Moreover, simulations that mimic real-time scenarios (e.g., for training) may require the use of head tracking equipment to determine the user's interaction within the simulation. Various other uses have need for determining the 3D location of a user's head.
Numerous techniques can be used for 3D head tracking. These techniques suffer from various disadvantages, or flaws, some of which are listed below. For example, some techniques required the use of markings on a head that could be tracked. Other techniques required the wearing of LED lights on various positions around the head to held determine the 3D position of the head. These two techniques required additional active measures to be taken by the user in order to implement 3D head tracing. While these techniques require the use of external markings on the user's head, other techniques require that facial features are extracted from images of the user in order to reliably track the 3D position of the user's head. Extraction of facial features is computationally expensive and may require specialized equipment. Still other techniques require that a complete 3D model of the user's head be generated in order to track the position of the user's head in 3D space. This technique also is computationally expensive. Other techniques require the computation of optical flow, or some essentially equivalent quantity, such as the registration of textures. However, these techniques are not invariant to lighting. Still other techniques require explicit stereo information, which relies on matching of features between views.
In general, all of these techniques are computationally expensive, and/or require expensive equipment to implement. As a result, these techniques are not robust. That is, these techniques as a group are vulnerable to various difficulties and may not be able to operate in real-time. For example, these techniques as a group are vulnerable to one or more of the following: changes in lighting; the appearance and disappearance of the user; difficulties in finding features that can be tracked reliably; inaccuracies in forming an explicit 3D model of the user's head; and problems with inaccurate calculation of optical flow and/or texture registration.